// 这是一个立即执行函数表达式
(function() {
	// do something
	/**
	 * 功能模块A的代码
	 */
	var aFlag = false;
	// 模块A 创建了方法 keepMoving
	function keepMoving() {









		if (keepFlag) {
			console.log('keepFlag');
		}
	}
	// 修改变量b的值
	b = 1;
})();

// 这是一个立即执行函数表达式
var moduleA = (function() {
	// do something
	/**
	 * 功能模块A的代码
	 */
	var aFlag = false;
	// 模块A 创建了方法 keepMoving
	function keepMoving() {









		if (keepFlag) {
			console.log('keepFlag');
		}
	}
	// 修改变量b的值
	b = 1;
	// 只暴露 keepMoving 方法
	return {
		keepMoving: keepMoving
	}
})();


var a = function() { /* code */ }();

function a () { /* code */ }(); // Uncaught SyntaxError: Unexpected token (


// 有一个函数run
function run() {
	// 私有变量 privateNum
	var privateNum = '';
	return {
		getNum: function() {
			console.log(privateNum)
		}
	}
}
// 定义后立即执行
run();

// 定义了一个函数 func1
function func1() {
	/* code */
}
// 函数立即执行
fun1();

// 使用IIFE
(function fun1() {
	/* code */
})();


// 使用IIFE
(function () {
	/* code */
})();

// 也可以这样写
(function () {
	/* code */
}());

// 需要给num进行赋值
var num;
var getNum = function() { 
	return 5;
};
num = getNum();



// 定义了一个函数 func
var func = function() {
	/* code */
}
// 立即执行这个函数
func();


function doTask(callback) {
	// 执行任务
	// 如果有回调就执行
	callback && callback();
}





